#pragma once

#include "log.h"

#ifdef DEBUG

GLenum dbgGLPrintLastError(int no = 0);
void MsgBox(const char* msg);

static FILE* dbgfile = NULL;
static bool dbgfile_inited = false;

void initDebugging();
void writeDebugMessage(const char* format, ...);
void closeDebugfile();

#endif  // DEBUG

#ifndef DEBUG_OUTPUT
#ifdef DEBUG
#define DEBUG_OUTPUT(format, ...)\
    do { writeDebugMessage(format, __VA_ARGS__); } while (0)
#else   // DEBUG
#define DEBUG_OUTPUT(format, ...)\
    do ; while(0)
#endif  // DEBUG
#endif  // DEBUG_OUTPUT

#ifndef DEBUG_GL_ERR
#ifdef DEBUG
#define DEBUG_GL_ERR(no)\
    do {dbgGLPrintLastError(no);} while(0)
#else   // DEBUG
#define DEBUG_GL_ERR(no)\
    do ; while(0)
#endif  // DEBUG
#endif  // DEBUG_GL_ERR


#ifdef DEBUG
#define AfxMessageBox(text)\
    ::MessageBox(0, text, text, MB_OK)
#endif


